package org.jeecg.modules.lottery.service;

import org.jeecg.modules.supplier.entity.Supplier;

import java.util.List;

/**
 * 抽签规则服务接口
 */
public interface ILotteryRulesService {

    /**
     * 计算供应商的最终中签率
     *
     * @param suppliers 供应商列表
     * @param params    配置参数
     * @return 计算后的供应商列表
     */
//    void calculateLotteryRates(List<Supplier> suppliers, double params);

    /**
     * 执行抽签
     * @param suppliers 供应商列表
     * @return 中签的供应商
     */
    List<Supplier> drawLottery(List<Supplier> suppliers,int drawCount);

    /**
     * 归一化处理
     * @param suppliers 供应商列表
     * @return 归一化后的供应商列表
     */
    List<Supplier> normalizeRates(List<Supplier> suppliers);

    /**
     * 获取基础中签率
     * @param supplierCount 供应商数量
     * @return 基础中签率
     */
    double getBaseRate(int supplierCount);

    /**
     * 获取供应商历史中标次数
     * @param supplierId 供应商ID
     * @return 中标次数
     */
    int getSupplierWinCount(String supplierId);


}


